      SUBROUTINE RDCAT3A2(TARGDATA,MAXPARM,TARGPARM,KTARGID,TARGNAME,
     *     KTARGTYP,NLOADED,LUERR,IERR)
      IMPLICIT REAL*8 (A-H,O-Z)
C
C THIS IS A SERVICE ROUTINE FOR THE TARGET CATALOGUE READER. IT
C LOADS THE READER'S TARGPARM OUTPUT ARRAY WITH POSITION-RELATED
C INFO READ FROM THE CATALOGUE AND PASSED HERE IN TARGDATA. THIS
C ROUTINE IS FOR DATA TYPES NEEDING SPECIAL HANDLING.
C
C
C***********************************************************************
C
C BY C PETRUZZO, GSFC/742, 7/85.
C    MODIFIED.....
C
C***********************************************************************
C
      INCLUDE 'RDCAT.INC'
C
      REAL*8 TARGPARM(MAXPARM),TARGDATA(MAXDATA)
      CHARACTER*16 TARGNAME
      LOGICAL SPECIAL
C
C BE SURE THIS TARGET TYPE REQUIRES SPECIAL HANDLING. IF NOT, IT
C SHOULD NOT HAVE BEEN CALLED.
C
      SPECIAL = .FALSE.
      DO I=1,NSPECIAL
        SPECIAL = SPECIAL .OR. KTARGTYP.EQ.KSPECIAL(I)
        END DO
      IF(.NOT.SPECIAL)
     *   STOP 'STOP IN RDCAT3A2. PROGRAMMER ERROR. SEE CODE.'
C
C
C LOAD TARGPARM. SPECIAL HANDLING FOR KTARGYP = 3.
      IF(KTARGTYP.EQ.3) THEN
        CALL RDCAT3A2A(TARGDATA,MAXPARM,TARGPARM,KTARGID,TARGNAME,
     *        KTARGTYP,NLOADED,LUERR,IERR)
C
C
C LOAD TARGPARM. SPECIAL HANDLING FOR KTARGYP = 7.
      ELSE IF(KTARGTYP.EQ.7) THEN
        CALL RDCAT3A2B(TARGDATA,MAXPARM,TARGPARM,KTARGID,TARGNAME,
     *        KTARGTYP,NLOADED,LUERR,IERR)
C
C
C ERROR. NO MODULE WRITTEN FOR THIS TARGET TYPE.
      ELSE
        TYPE *,'PROGRAMMING ERROR IN RDCAT3A2. SEE CODE.'
        TYPE *,'     KTARGTYP=',KTARGTYP
        STOP   '     STOP 2 IN RDCAT3A2.'
        END IF
C
C
 9900 CONTINUE
      RETURN
      END
